package chapter14.Collection.Set;

import java.util.HashSet;

/**
 * @Auther: Tx
 * @Date: 2022/5/11 21:28
 */
@SuppressWarnings("all")
public class HashSetSource {
//    1.添加一个元素时，先调用hashcode算法，得到hash值，转换成索引值。
//    2.找到存储数据表table，看这个索引是否已经存在元素。
//    3.如果没有直接加入。
//    4.如果有，调用equals方法(),比较如果相同就放弃添加，返回false，如果不同则遍历该索引值所在的链表，将该元素插入到最后。
//    5.在java8中，如果一条链表的元素到达TREEIFY_THRESHOLD(默认值为8)，并且table的长度>=MIN_TREEIFY_CAPACITY(默认值64)
//    就会进行树化（红黑树）。
    public static void main(String[] args) {
//        debug 追源码
        HashSet hashSet = new HashSet();
        hashSet.add("java");
        hashSet.add("php");
        hashSet.add("java");
/*
* 源码解读
* 1.
*
*
*
*
* */
    }
}
